package compilador.lexico;

//import java.util.ArrayList;
import java.util.List;

public class LexemaIdentificador extends Lexema {

	
	public Token calcular(TablaSimbolos tablaSimbolos, int numeroLinea, List<Error> errores) {

		//List<Resultado> resultado = new ArrayList<Resultado>();
		if (tablaSimbolos.esPalabraReservada(cadena)){
			token.setID("Palabra Reservada");
			token.setValor(cadena);
		}
		else if (cadena.length() >15){
			
			String trunk = cadena.substring(0, 15);
			token.setID("Identificador");
			token.setValor(trunk);
			if (! tablaSimbolos.contieneSimbolo(trunk)) {
				tablaSimbolos.agregarSimbolo(token.getID(), token.getValor());
			}
			//resultado.add(token);	
			errores.add(new Error(Error.WARNING_IDENTIFICADOR_LARGO,numeroLinea,""));
		}
			else{ 
				token.setValor("Identificador");
				token.setValor(cadena);
				if (! tablaSimbolos.contieneSimbolo(cadena)){
					tablaSimbolos.agregarSimbolo(token.getID(), token.getValor());
				}
			}
		
		return token;
	}


}
